本文是笔者爬虫实战系列做个第二个项目。
做这个项目的初衷是因为之前在网上有看到有个教程,利用正则表达式匹配来完成网页解析图片的步骤。而笔者下午刚刚学习了BeautifulSoup这个强大的库,便想看看能不能利用该库完成同样的目标。
这样一来,可以使新手在不需要学习繁杂的正则表达式的前提下,完成爬取网页中图片的项目。
希望本文能对新手学习写python爬虫有些帮助。
另外,本文的代码是笔者首次尝试在python项目中使用class类,如有什么使用不妥之处也很欢迎大家前来拍砖。
因笔者是用sublime text3自带的调试器进行程序调试的,该软件调试时不支持交互,故所有常量都是直接赋值的,使用时可以根据实际需要自行修改。
下面贴上我的代码:
# -*- coding:utf-8 -*-
import urllib,urllib2
import re
from bs4 import BeautifulSoup
class Downloader(object):
#网页下载器
def download(self, url):
if url is None:
return None
request = urllib2.Request(url)
request.add_header("User-agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSER")
response = urllib2.urlopen(request)
if response.getcode() != 200:
return None
return response.read()
class Baidu_Parser(object):
"""网页解析器"""
def _get_images(self, url, soup):
#图片位置